Many microcontrollers are designed for embedded applications, and are used in automatically controlled products and devices such as automobile engine control systems, implantable medical devices, remote controls, office machines, appliances, power tools, toys, etc. Mixed signal microcontrollers integrate analog components needed to control non-digital electronic systems.
An analog-to-digital converter (“ADC”) converts a continuous quantity (e.g. an analog signal) to a series of discrete quantities (e.g. a digital signal). Typically, an ADC is an electronic device that converts an input analog voltage or current to a digital number proportional to the magnitude of the voltage or current. The resolution of the ADC, usually expressed as binary bits, indicates the number of discrete values the ADC can produce over the range of analog values. As such, the number of discrete values available, or “levels,” is usually a power of two. For example, an ADC with a resolution of 8 bits can encode an analog input to one of 256 different levels because an 8-bit binary value can represent 2^8 or 256 discrete quantities. However, the flexibility of coding levels has not resulted in flexibility of input channel selection and conversion timing. Indeed, ADC designs have restrictive and inefficient constraints placed on channel selection and conversion timing.